home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 2
/
Merciful - Disc 2.iso
/
software
/
h
/
highspeedpascalv2.0b.dms
/
highspeedpascalv2.0b.adf
/
Interface
/
AmigaDOS.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-01-16
|
11KB
|
487 lines
Unit AmigaDOS;
Interface
Uses Timer, Exec;
Type
tDateStamp = Record
ds_Days: LongInt;
ds_Minute: LongInt;
ds_Tick: LongInt;
End;
tRootNode = Record
rn_TaskArray: LongInt;
rn_ConsoleSegment: LongInt;
rn_Time: tDateStamp;
rn_RestartSeg: LongInt;
rn_Info: LongInt;
rn_FileHandlerSegment: LongInt;
End;
pMessage = ^tMessage;
pMsgPort = ^tMsgPort;
tDosPacket = Record
dp_Link: pMessage;
dp_Port: pMsgPort;
dp_Type: LongInt;
dp_Res1: LongInt;
dp_Res2: LongInt;
dp_Arg1: LongInt;
dp_Arg2: LongInt;
dp_Arg3: LongInt;
dp_Arg4: LongInt;
dp_Arg5: LongInt;
dp_Arg6: LongInt;
dp_Arg7: LongInt;
End;
tStandardPacket = Record
sp_Msg: tMessage;
sp_Pkt: tDosPacket;
End;
tDosLibrary = Record
dl_lib: tLibrary;
dl_Root: Pointer;
dl_GV: Pointer;
dl_A2: LongInt;
dl_A5: LongInt;
dl_A6: LongInt;
End;
tProcess = Record
pr_Task: tTask;
pr_MsgPort: tMsgPort;
pr_Pad: Integer;
pr_SegList: LongInt;
pr_StackSize: LongInt;
pr_GlobVec: Pointer;
pr_TaskNum: LongInt;
pr_StackBase: LongInt;
pr_Result2: LongInt;
pr_CurrentDir: LongInt;
pr_CIS: LongInt;
pr_COS: LongInt;
pr_ConsoleTask: Pointer;
pr_FileSystemTask: Pointer;
pr_CLI: LongInt;
pr_ReturnAddr: Pointer;
pr_PktWait: Pointer;
pr_WindowPtr: Pointer;
End;
tFileSysStartupMsg = Record
fssm_Unit: LongInt;
fssm_Device: LongInt;
fssm_Environ: LongInt;
fssm_Flags: LongInt;
End;
tFileInfoBlock = Record
fib_DiskKey: LongInt;
fib_DirEntryType: LongInt;
fib_FileName: Array [0..107] of ShortInt;
fib_Protection: LongInt;
fib_EntryType: LongInt;
fib_Size: LongInt;
fib_NumBlocks: LongInt;
fib_Date: tDateStamp;
fib_Comment: Array [0..79] of ShortInt;
fib_Reserved: Array [0..35] of ShortInt;
End;
tFileHandle = Record
fh_Link: pMessage;
fh_Port: pMsgPort;
fh_Type: pMsgPort;
fh_Buf: LongInt;
fh_Pos: LongInt;
fh_End: LongInt;
fh_Funcs: LongInt;
fh_Func2: LongInt;
fh_Func3: LongInt;
fh_Args: LongInt;
fh_Arg2: LongInt;
End;
tInfoData = Record
id_NumSoftErrors: LongInt;
id_UnitNumber: LongInt;
id_DiskState: LongInt;
id_NumBlocks: LongInt;
id_NumBlocksUsed: LongInt;
id_BytesPerBlock: LongInt;
id_DiskType: LongInt;
id_VolumeNode: LongInt;
id_InUse: LongInt;
End;
tFileLock = Record
fl_Link: LongInt;
fl_Key: LongInt;
fl_Access: LongInt;
fl_Task: pMsgPort;
fl_Volume: LongInt;
End;
tDeviceNode = Record
dn_Next: LongInt;
dn_Type: LongInt;
dn_Task: pMsgPort;
dn_Lock: LongInt;
dn_Handler: LongInt;
dn_StackSize: LongInt;
dn_Priority: LongInt;
dn_Startup: LongInt;
dn_SegList: LongInt;
dn_GlobalVec: LongInt;
dn_Name: LongInt;
End;
tDevInfo = Record
dvi_Next: LongInt;
dvi_Type: LongInt;
dvi_Task: Pointer;
dvi_Lock: LongInt;
dvi_Handler: LongInt;
dvi_StackSize: LongInt;
dvi_Priority: LongInt;
dvi_Startup: LongInt;
dvi_SegList: LongInt;
dvi_GlobVec: LongInt;
dvi_Name: LongInt;
End;
tDosInfo = Record
di_McName: LongInt;
di_DevInfo: LongInt;
di_Devices: LongInt;
di_Handlers: LongInt;
di_NetHand: Pointer;
End;
tDosEnvec = Record
de_TableSize: LongInt;
de_SizeBlock: LongInt;
de_SecOrg: LongInt;
de_Surfaces: LongInt;
de_SectorPerBlock: LongInt;
de_BlocksPerTrack: LongInt;
de_Reserved: LongInt;
de_PreAlloc: LongInt;
de_Interleave: LongInt;
de_LowCyl: LongInt;
de_HighCyl: LongInt;
de_NumBuffers: LongInt;
de_BufMemType: LongInt;
de_MaxTransfer: LongInt;
de_Mask: LongInt;
de_BootPri: LongInt;
de_DosType: LongInt;
End;
tCommandLineInterface = Record
cli_Result2: LongInt;
cli_SetName: LongInt;
cli_CommandDir: LongInt;
cli_ReturnCode: LongInt;
cli_CommandName: LongInt;
cli_FailLevel: LongInt;
cli_Prompt: LongInt;
cli_StandardInput: LongInt;
cli_CurrentInput: LongInt;
cli_CommandFile: LongInt;
cli_Interactive: LongInt;
cli_Background: LongInt;
cli_CurrentOutput: LongInt;
cli_DefaultStack: LongInt;
cli_StandardOutput: LongInt;
cli_Module: LongInt;
End;
tDeviceList = Record
dl_Next: LongInt;
dl_Type: LongInt;
dl_Task: pMsgPort;
dl_Lock: LongInt;
dl_VolumeDate: tDateStamp;
dl_LockList: LongInt;
dl_DiskType: LongInt;
dl_unused: LongInt;
dl_Name: LongInt;
End;
tDosList = Record
dol_Next: LongInt;
dol_Type: LongInt;
dol_Task: pMsgPort;
dol_Lock: LongInt;
Case Integer of
0: (
dol_handler: Record
dol_Handler: LongInt;
dol_StackSize: LongInt;
dol_Priority: LongInt;
dol_Startup: LongInt;
dol_SegList: LongInt;
dol_GlobVec: LongInt;
End;
);
1: (
dol_volume: Record
dol_VolumeDate: tDateStamp;
dol_LockList: LongInt;
dol_DiskType: LongInt;
End;
dol_Name: LongInt;
);
End;
BPTR = LongInt;
BSTR = LongInt;
pDosPacket = ^tDosPacket;
pFileInfoBlock = ^tFileInfoBlock;
pDosList = ^tDosList;
pDateStamp = ^tDateStamp;
pProcess = ^tProcess;
pCommandLineInterface = ^tCommandLineInterface;
pInfoData = ^tInfoData;
Const
ACTION_LOCATE_OBJECT = $8;
ACTION_RENAME_OBJECT = $11;
MODE_NEWFILE = $3EE;
FIBF_DELETE = $1;
DE_SIZEBLOCK = $1;
ACTION_SET_PROTECT = $15;
SIGBREAKB_CTRL_C = $C;
ACCESS_READ = $FFFFFFFE;
ID_KICKSTART_DISK = $4B49434B;
SIGBREAKB_CTRL_D = $D;
ERROR_LINE_TOO_LONG = $78;
ERROR_OBJECT_TOO_LARGE = $CF;
SIGBREAKB_CTRL_E = $E;
DLT_DIRECTORY = $1;
SIGBREAKB_CTRL_F = $F;
ERROR_NO_FREE_STORE = $67;
ERROR_DIR_NOT_FOUND = $CC;
SIGBREAKF_CTRL_C = $1000;
SIGBREAKF_CTRL_D = $2000;
SIGBREAKF_CTRL_E = $4000;
ERROR_BAD_STREAM_NAME = $CE;
SIGBREAKF_CTRL_F = $8000;
ACTION_GET_BLOCK = $2;
ACTION_FREE_LOCK = $F;
ID_NO_DISK_PRESENT = $FFFFFFFF;
DOSNAME = 'dos.library';
ERROR_INVALID_RESIDENT_LIBRARY = $7A;
ACTION_FINDOUTPUT = $3EE;
ACCESS_WRITE = $FFFFFFFF;
BYTESPERLONG = $4;
ACTION_READ = $52;
ACTION_TIMER = $1E;
OFFSET_BEGINING = $FFFFFFFF;
ACTION_EVENT = $6;
ACTION_FLUSH = $1B;
ACTION_FINDINPUT = $3ED;
ERROR_OBJECT_WRONG_TYPE = $D4;
ACTION_WAIT_CHAR = $14;
DE_NUMHEADS = $3;
ERROR_OBJECT_NOT_FOUND = $CD;
RETURN_OK = $0;
SHARED_LOCK = $FFFFFFFE;
ACTION_DISK_INFO = $19;
DE_BLKSPERTRACK = $5;
ACTION_WRITE = $57;
DE_MASK = $E;
ACTION_SEEK = $3F0;
DE_RESERVEDBLKS = $6;
ERROR_NO_DISK = $E2;
FIBB_SCRIPT = $6;
ERROR_FILE_NOT_OBJECT = $79;
BITSPERLONG = $20;
ACTION_INFO = $1A;
TICKS_PER_SECOND = $32;
FIBF_SCRIPT = $40;
ERROR_DISK_WRITE_PROTECTED = $D6;
ERROR_READ_PROTECTED = $E0;
BITSPERBYTE = $8;
ERROR_TASK_TABLE_FULL = $69;
ACTION_CURRENT_VOLUME = $7;
ID_UNREADABLE_DISK = $42414400;
ID_NOT_REALLY_DOS = $4E444F53;
ACTION_DIE = $5;
ACTION_DISK_CHANGE = $21;
ACTION_TRUNCATE = $3FE;
DOSTRUE = $FFFFFFF6;
ERROR_WRITE_PROTECTED = $DF;
ACTION_DISK_TYPE = $20;
ERROR_ACTION_NOT_KNOWN = $D1;
ERROR_COMMENT_TOO_BIG = $DC;
ACTION_SET_DATE = $22;
FIBB_READ = $3;
DLT_DEVICE = $0;
ACTION_END = $3EF;
ACTION_INHIBIT = $1F;
RETURN_FAIL = $14;
FIBF_READ = $8;
ID_DOS_DISK = $444F5300;
DE_UPPERCYL = $A;
ERROR_DISK_NOT_VALIDATED = $D5;
MODE_READWRITE = $3EC;
ERROR_INVALID_COMPONENT_NAME = $D2;
OFFSET_END = $1;
FIBB_WRITE = $2;
MININT = $80000000;
DE_PREFAC = $7;
RETURN_ERROR = $A;
ACTION_EXAMINE_NEXT = $18;
MAXINT = $7FFFFFFF;
ERROR_NO_DEFAULT_DIR = $C9;
ACTION_NIL = $0;
ACTION_WRITE_PROTECT = $3FF;
FIBF_WRITE = $4;
ERROR_SEEK_ERROR = $DB;
ACTION_RENAME_DISK = $9;
ACTION_COPY_DIR = $13;
ACTION_SCREEN_MODE = $3E2;
ERROR_NO_MORE_ENTRIES = $E8;
DE_MAXTRANSFER = $D;
ID_VALIDATING = $51;
DE_BOOTPRI = $F;
ACTION_FINDUPDATE = $3EC;
ACTION_MORE_CACHE = $12;
ERROR_RENAME_ACROSS_DEVICES = $D7;
ERROR_TOO_MANY_LEVELS = $D9;
DE_SECSPERBLK = $4;
ERROR_DEVICE_NOT_MOUNTED = $DA;
DE_INTERLEAVE = $8;
FIBB_ARCHIVE = $4;
DE_SECORG = $2;
DE_DOSTYPE = $10;
EXCLUSIVE_LOCK = $FFFFFFFF;
ERROR_DISK_FULL = $DD;
RETURN_WARN = $5;
ACTION_EXAMINE_OBJECT = $17;
FIBB_PURE = $5;
FIBF_ARCHIVE = $10;
ID_VALIDATED = $52;
ACTION_CREATE_DIR = $16;
FIBF_PURE = $20;
ACTION_SET_MAP = $4;
ERROR_DELETE_PROTECTED = $DE;
OFFSET_CURRENT = $0;
ERROR_INVALID_LOCK = $D3;
ACTION_READ_RETURN = $3E9;
DOSFALSE = $0;
DLT_VOLUME = $2;
DE_NUMBUFFERS = $B;
ERROR_OBJECT_EXISTS = $CB;
DE_MEMBUFTYPE = $C;
DE_BUFMEMTYPE = $C;
ACTION_SET_COMMENT = $1C;
ACTION_PARENT = $1D;
MODE_OLDFILE = $3ED;
ERROR_OBJECT_IN_USE = $CA;
FIBB_EXECUTE = $1;
ERROR_DIRECTORY_NOT_EMPTY = $D8;
ERROR_NOT_A_DOS_DISK = $E1;
ID_WRITE_PROTECTED = $50;
OFFSET_BEGINNING = $FFFFFFFF;
ACTION_DELETE_OBJECT = $10;
FIBF_EXECUTE = $2;
ACTION_WRITE_RETURN = $3EA;
FIBB_DELETE = $0;
DE_TABLESIZE = $0;
DE_LOWCYL = $9;
Function Open
(name: String;
accessMode: LongInt): LongInt;
Procedure Close_ (file_: LongInt);
Function Read_
(file_: LongInt;
buffer: Pointer;
length: LongInt): LongInt;
Function Write_
(file_: LongInt;
buffer: Pointer;
length: LongInt): LongInt;
Function Input_: LongInt;
Function Output_: LongInt;
Function Seek_
(file_: LongInt;
position: LongInt;
offset: LongInt): LongInt;
Function DeleteFile (name: String): Boolean;
Function Rename_
(oldName: String;
newName: String): Boolean;
Function Lock
(name: String;
type_: LongInt): LongInt;
Procedure UnLock (lock: LongInt);
Function DupLock (lock: LongInt): LongInt;
Function Examine
(lock: LongInt;
fileInfoBlock: pFileInfoBlock): Boolean;
Function ExNext
(lock: LongInt;
fileInfoBlock: pFileInfoBlock): Boolean;
Function Info
(lock: LongInt;
parameterBlock: pInfoData): Boolean;
Function CreateDir (name: String): LongInt;
Function CurrentDir (lock: LongInt): LongInt;
Function IoErr: LongInt;
Function CreateProc
(name: pShortInt;
pri: LongInt;
segList: LongInt;
stackSize: LongInt): pMsgPort;
Procedure Exit_ (returnCode: LongInt);
Function LoadSeg (fileName: String): LongInt;
Function UnLoadSeg (segment: LongInt): Boolean;
Function DeviceProc (name: String): pMsgPort;
Function SetComment
(name: String;
comment: String): Boolean;
Function SetProtection
(name: String;
mask: LongInt): Boolean;
Function DateStamp (date: pDateStamp): pDateStamp;
Procedure Delay (timeout: LongInt);
Function WaitForChar
(file_: LongInt;
timeout: LongInt): Boolean;
Function ParentDir (lock: LongInt): LongInt;
Function IsInteractive (file_: LongInt): Boolean;
Function Execute
(string_: String;
file_: LongInt;
file_: LongInt): Boolean;
Function BADDR (bval: BPTR): APTR;
Function MKBADDR (addr: Pointer): BPTR;
End.